Computers typically run multiple programs concurrently, each of which can be run as one or more processes. It is oftentimes desirable to protect particular resources (e.g., storage areas, devices, etc.) so that they can be accessed only by particular processes. However, implementing such protection is not without its problems. One such problem is determining how to identify the different processes in a manner that allows the processes to be distinguished from one another while at the same time not overburdening resources (e.g., memory, processing capacity, etc.) of the computer.